Visually recognizing objects is one of those tasks that is very simple for humans but very difficult for machines. Some solutions for visual recognition require that the object be in a very specific position, limit the number of objects that may be recognized, or require that a distinctive mark be placed on the object, such as multi-line barcodes or matrix barcodes.
But these solutions do not solve the general problem of quick recognition of any object from a large number of possible objects in an uncontrolled environment where the objects may be situated in any position, such as objects placed on a checkout counter.
Machine-learning programs are being used for object recognition, but these programs require a large number of sample images (e.g., thousands of images) to be trained for object recognition. Adding a new object for classification may become a cumbersome, lengthy operation.